package top.lwaiting.sqlSession;

import java.util.List;

/**
 * @author YANG
 * @version V1.0
 * @date 2024/1/18 14:51
 * @see SqlSession
 **/
public interface SqlSession {


    /**
     * 查询所有
     * @param statementId {@link String} Sql 唯一标识
     * @param args {@link Object} 可变参数
     * @param <E> {@link E}
     * @return {@link List}
     */
    public <E>List<E> selectList(String statementId, Object... args) throws Exception;

    /**
     * 根据条件查询单个
     * @param statementId {@link String} Sql 唯一标识
     * @param args {@link Object} 可变参数
     * @param <T> {@link T}
     * @return {@link List}
     */
    public <T> T selectOne(String statementId, Object... args) throws Exception;

    /**
     * 为 Dao 接口生成代理实现类
     * @param mapperClass {@link Class}
     * @param <T> {@link T}
     * @return {@link T}
     */
    <T> T getMapper(Class<?> mapperClass);
}
